#ifndef SIMULATION_HPP
#define SIMULATION_HPP

#include "Headers.h"
#include "ChessBoard.h"
#include "ChessBoardController.h"
#include "ChessPanelRecController.h"
#include "GameRecord.h"
#include "Console.h"

class Simulation : public QThread
{
    Q_OBJECT
private:
    ChessBoardController * chessBoardController;
    ChessPanelRecController * panelController;
    ChessBoard * chessBoard;
    GameRecord * gameRecord;
    bool paused;
    bool stopped;
public:
    Simulation(ChessBoardController * boardController, ChessPanelRecController * panelController);
    void setGameRecord(GameRecord * record);
public slots:
    void startSimulation();
    void pause();
    void resume();
    void stop();
protected:
    void run();
};

#endif // SIMULATION_HPP
